home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 January / EnigmA AMIGA RUN 33 (1999)(G.R. Edizioni)(IT)[!][issue 1999-01].iso / earcd / faq / computer-lang / modula2-faq / part2.z / part2
Internet Message Format  |  1999-01-01  |  27KB

  1. Path: senator-bedfellow.mit.edu!faqserv
  2. From: Rick Sutcliffe <rsutc@twu.ca>
  3. Newsgroups: comp.lang.modula2,comp.answers,news.answers
  4. Subject: Modula-2 FAQ/part2
  5. Supersedes: <computer-lang/Modula2-faq/part2_909922630@rtfm.mit.edu>
  6. Followup-To: poster
  7. Date: 1 Dec 1998 13:48:49 GMT
  8. Organization: none
  9. Lines: 583
  10. Approved: news-answers-request@MIT.EDU
  11. Distribution: world
  12. Expires: 14 Jan 1999 13:47:57 GMT
  13. Message-ID: <computer-lang/Modula2-faq/part2_912520077@rtfm.mit.edu>
  14. References: <computer-lang/Modula2-faq/part1_912520077@rtfm.mit.edu>
  15. NNTP-Posting-Host: penguin-lust.mit.edu
  16. Summary: This file contains the answers to some commonly asked questions
  17.   about the programming language Modula-2.
  18. Keywords: languages, Modula-2
  19. X-Last-Updated: 1998/10/01
  20. Originator: faqserv@penguin-lust.MIT.EDU
  21. Xref: senator-bedfellow.mit.edu comp.lang.modula2:17841 comp.answers:34094 news.answers:145677
  22.  
  23. Archive-name: computer-lang/Modula2-faq/part2
  24. Version: 2.16
  25. Last-modified: 1998 10 0125
  26. Posting-frequency: Monthly
  27.  
  28.                  Modula-2 Frequently Asked Questions Part 2
  29.  
  30. 4. WHERE CAN I GET SOURCE CODE, OTHER INFO?
  31.  
  32. 4.1.1 Is there source or other info available on the net?
  33. A. Here are some net sites I have accessed at one time or another. I am not
  34. sure if all are still available or what is in them.
  35. ftp://ee.newcastle.edu.au/pub/modula2/
  36. ftp://ftp.psg.com/pub/modula-2/
  37. ftp://FTP.twu.ca/pub/modula2/m2faq.html ( Home of this FAQ)
  38. ftp://ftp.inf.ethz.ch/pub/
  39. ftp://NIC.SWITCH.CH
  40. ftp://sageftp.inel.gov/pub/sage/
  41. ftp://ftp.mathematik.uni-ulm.de/pub/soft/modula/
  42.  
  43. WWW sites
  44. http://www.yahoo.com/Computers_and_Internet/Programming_Languages/Modula_2/
  45.  
  46. http://i44www.info.uni-karlsruhe.de/~vollmer/mocka.html
  47. http://www.dct.com/~johnm/M2info.html
  48.  
  49. http://www.ualberta.ca/~pkobly/
  50.  
  51. http://stoner.cidde.pitt.edu/Modula2/http://www.stack.nl/~marcov/xtdlib.htm
  52.  
  53. http://cs.ru.ac.za/homes/cspt/modula2.htm
  54.  
  55. 4.2 What other FAQs or lists of pages are available?
  56. A. Try  http://www.ee.newcastle.edu.au/users/staff/peter/m2/Modula2.html
  57. A2. (commercial) http://www.dct.com/~johnm/M2info.html
  58. A3. http://www.ualberta.ca/~foka/Computer.html#Modula-2
  59. A4. http://www.ualberta.ca/~foka/Computer.html#Modula-2
  60. A5. http://www.dct.com/~johnm/xdslinks.html
  61. A6. http://stoner.cidde.pitt.edu/Modula2/
  62. A7. http://burks.bton.ac.uk/burks/language/modula2/index.htm
  63.  
  64. 4.3  Where can I find graphics libraries, etc?
  65. A1. Try the PMOS library for various platforms
  66. athttp://www.ee.newcastle.edu.au/users/staff/peter/m2/PMOS/PMOS.html
  67.  (Australia)
  68.    or, at one of the following sites:
  69.   ftp://ftp.psg.com/pub/modula-2/code  (North America)
  70. ftp://cs.ru.ac.za/pub/languages   (South Africa)
  71. ftp://dutiba.twi.tudelft.nl/pub/modula2 (Western Europe)
  72. ftp://ftp.cnit.nsu.ru/pub/msdos/programm.ing/modula2   (Eastern Europe).
  73.  
  74. A2. there is a graphics library MultiGraph available through the MultiGraph
  75. home page at
  76. http://www.ccas.ru/~iak/mg2.htm  It supports nearly all the Super-VGA
  77. graphics modes on VESA-compatible graphics boards, including high-color and
  78. true-color modes. You may also contact
  79.    Databiten AB
  80.    P O Box 115
  81.    811 22 Sandviken
  82.    SWEDEN
  83.    phone: +46 26 256493
  84.    fax:   +46 26 253641
  85. OR
  86.    Alex Iakovlev
  87.    Computing Center of the Russian Academy of Sciences
  88.    40, Vavilov Street, Moscow, GSP-1, 117967, Russia
  89.    mailto:iak@ccas.ru
  90.  
  91.  
  92. 4.4 Are there any mathematical libraries available?
  93. A1. See Numerical Procedures in Modula-2 -- authorized translation of
  94. Numerical recipes in Pascal from PolyWare (Klara Vancso): klarav@telic.nl
  95. (work) OR k.vancso@tip.nl   (home) The CD-ROM has the Modula-2 sources. See
  96. http://www.nr.com
  97.  
  98. A2. A numerical analysis package (as Modula-2 source files) is now
  99. available.  Information can be found at:
  100. http://www.ee.newcastle.edu.au/users/staff/peter/m2/NumAnal.html
  101. =46rom this point one can download a classical (PIM) version or a standard
  102. (ISO) version.
  103.  
  104. The modules in this package are:
  105.     Complex arithmetic: most of the usual operations, including the
  106.          recently-requested SIN and COS.
  107.     Matrices: operations on matrices of any size (up to a maximum
  108.          size limit, of course) - things like addition, multiplication,
  109.          inverse, solving linear equations, eigenvalues.
  110.     Polynomials: including root-finding.
  111.     Fast Fourier Transform.
  112.     Solving ordinary differential equations.
  113. A3. LMathLib is a library that defines a number of mathematical functions
  114. for Modula 2 programs. Unlike other libraries of the same kind, LMathLib
  115. patches the Modula 2 compiler. All library functions are inlined as
  116. assembler code for the Floating Point Unit. This results in faster code
  117. compared to the traditional solution with subroutine calls. Due to this
  118. machine dependent technique, you can use the library ONLY with the (free)
  119. GMD Modula System Mocka for Linux on INTEL based machines. You can get the
  120. LMathLib library via anonymous ftp from
  121. ftp://tee-1.tee.uni-essen.de/pub/Mocka/(132.252.131.33) Documentation is
  122. included.
  123.  
  124. A4. MATHPAK 87/32 is available for most 32-bit compilers. A lite version
  125. for Canterbury M2 is freely downloadable from
  126. http://www.webcom.com/mhc/welcome.html
  127. =46eatures:
  128.  Written fully in INTEL CPU machine language
  129.   Math Coprocessor control
  130.   Basic Math functions
  131.   Vector and Vector-Scalar Routines
  132.   Vector and Vector-Scalar 'Skip' Procedures
  133.   Complex Number Routines
  134.   Complex Vector and Vector-Scalar Routines
  135.   Polynomial Manipulation Routines
  136.   Simple Matrix and Vector-Matrix Routines
  137.   Solving Systems of Linear and Nonlinear Equations
  138.   Unconstrained Minimization
  139.   Nonlinear Least-Squares Minimization
  140.   Eigenvalues and Eigenvectors
  141.   Singular Value Decomposition
  142.   Extrapolation of Vector-Sequences
  143.   Statistical and Data-Fitting Rountines
  144.   Fourier Transforms and Convolution
  145.   Spectral Analysis Routines
  146.   Numerical Integration
  147.   Differential Equations
  148.  
  149.  
  150. 4.5  Where can I get a Modula-2 to C converter?
  151. A: The program mtc is available by anonymous ftp from
  152. ftp://ftp.psg.com/pub/modula-2/grosch/mtc.tar.Z
  153. ftp://ftp.ira.uka.de/pub/programming/cocktail/mtc.tar.gz
  154. ftp://ftp.Uni-Koeln.DE/usenet/comp.archives/languages/modula-2/mtc/
  155. An already ported version for DOS+DJGPP can be found at
  156. ftp://ftp.uni-stuttgart.de/pub/unix/programming/modula/
  157. Several of the compilers available work by producing C code and can also
  158. serve this purpose. See p1 and XDS listings.
  159.  
  160.  
  161. 4.6  Where can I get a Modula-2 to Modula-3 converter?
  162. A. m2tom3 is available under the terms of the GNU Library General Public
  163. License from
  164. ftp://ftp-i3.informatik.rwth-aachen.de/pub/Modula-3-Contrib/m2tom3/
  165.    m2tom3 is a system to port Modula-2 programs to Modula-3. It consists
  166. of two parts:
  167.  - A conversion program which tries to create a Modula-3 source text
  168.    with the same semantics as the Modula-2 input while retaining the
  169.    original look and feel as good as possible.
  170.  - A base library which tries to emulate the Modula-2 standard library
  171.    using the Modula-3 standard library.
  172.   contact: Peter Klein
  173.   office:  Ahornstrasse 55, 52074 Aachen, Germany
  174.   e-mail:  pk@i3.informatik.rwth-aachen.de.
  175.   Tel.: +49/241/80-21316
  176.   Fax.: +49/241/8888-218
  177.  
  178.  
  179. 4.7  Where can I get a Modula-2 to Component Pascal converter?
  180. A.This is available from http://www.lrz.de/~Bernhard_Treutwein/m2o.txtNote:
  181. Component Pascal is an Oberon dialect, but the translator does not use any
  182. CP specificfeatures, i.e. generates standard Oberon-2.
  183.  
  184. 4.8 Are there any Modula-2 applications around?
  185. A. The Idaho National Engineering Laboratory (INEL) develops and maintains
  186. a now ~350,000 line public domain MODULA-2 reusable component library
  187. called SAGE. For more information on SAGE send E-Mail to
  188. hotline@sage.inel.gov and see the FTP server at
  189. ftp://sageftp.inel.gov/pub/sage/
  190.  
  191.  
  192. 4.9 Are there any compiler construction tools available?
  193. A1. Some old ones appear in ftp://ftp.gmd.de/GMD/cocktail/
  194.  
  195. A2. Coco/R generates recursive descent parsers and their associated
  196. scanners from attribute grammars.  Full source code, and a variety of
  197. simple example applications are supplied in the distribution kits.  The
  198. Modula versions (1.45 is the latest) are available from
  199. ftp://ftp.ssw.uni-linz.ac.at/pub/Coco/  and the Java versions are there
  200. too, at ftp://ftp.ssw.uni-linz.ac.at/pub/Coco/javacoco.htm
  201. See also:
  202. ftp://ftp.inf.ethz.ch:/pub/software/Coco
  203. ftp://ftp.psg.com:/pub/modula-2/coco
  204. ftp://cs.ru.ac.za:/pub/coco
  205. ftp://ftp.fit.qut.edu.au:/pub/coco
  206. There are versions for the MS-DOS compilers (JPI, FST, Logitech,
  207. StonyBrook, Gardens Point), for the Mocka compiler for Linux and FreeBSD,
  208. as well as for the Gardens Point Unix compilers, including Linux and
  209. =46reeBSD.  There is also a version that produces TurboPascal units very
  210. similar to the Modula modules. A port for the P1 compiler on the Mac is
  211. also available.  A port by Rolf Schrader for TDI Atari Modula-2 is now
  212. available fromftp://cs.ru.ac.za:/pub/coco/ATARI136.EXE in the form of an
  213. MS-DOS self-extracting file.  This may also be unpacked by using the LHA
  214. decompressor on other systems. Latest information is available at
  215. http://cs.ru.ac.za/homes/cspt/cocor.htm.
  216.  
  217. A2. A copy of the EBNF for ISO Modula-2 can be found in Appendix 3 at:
  218. http://www.csc.twu.ca/rsbook
  219.  
  220.  
  221. 4.10 Does anyone know of a lexical analysis tool that is written in
  222. Modula-2 and for Modula-2 code?
  223. A.You want rex, part of Cocktail (also ll and lalr parser generators,
  224. abstract syntax trees, attribute grammar evaluators, tree  Free version:
  225.  
  226. ftp://ftp.ira.uka.de:/pub/programming/cocktail/
  227.  
  228.  Commercial version and support:
  229.   Dr.-Ing. Josef Grosch        Tel.  : 0721-697061
  230.   CoCoLab                      Fax   : 0721-661966
  231.   Hagsfelder Allee 16          EMail : grosch@cocolab.sub.com
  232.   D-76131 Karlsruhe
  233.  
  234. 4.11 Is there a static analyzer for Modula-2 code?
  235. A.You want OSA, a backend for XDS compilers only, available from
  236. http://www.xds.ru/osa/4.12 Is there an applications framework for Windows
  237. programming?
  238. A. Try looking at
  239. ftp://ftp.ifi.uio.no/pub/sjr/m2afx.zip
  240. orftp://ftp.leo.org/pub/comp/platforms/pc/windows/programming/modula/m2afx.z=
  241. ip
  242.  
  243.  
  244. This software is an application framework that implements a number of
  245. classes that encapsulate the weirdness of the Windows C API and attempts to
  246. present it in a cleaner way to the Modula-2 programmer.
  247.  
  248. 4.13 Does there exist something to convert a C header file to a Modula-2
  249. DEFINITION MODULE file for me?
  250. A. Try looking at the XDS Ltd site for the H2D freeware product on some
  251. platforms
  252.  
  253. 4.14 Is there any Benchmark code out there?
  254. A. Try looking at the XDS Ltd site for their benchmark
  255. suite.http://www.dct.com/~johnm/xdsfbdlo.html#benchmarks
  256. 4.15 Where can I get the C code of a Modula-2 compiler?
  257. A. Most Modula-2 compilers are written in Modula-2.  It seems
  258. rather strange to me that one would want to trust the compilation of a
  259. good language to a tool written in a poor one.4.16 What can I do with old
  260. sources from Modula Corp?
  261. A. From the former president Richard Ohran (ROhran@vinca.com): Modula Corp.
  262. is dead. Do whatever you like.4.17 Are there source code examples anywhere
  263. for Windows programmers?
  264. A. Translations of Example Programs in Charles Petzold's book "Programming
  265. Windows 95" from Visual C++ to Stony Brook and XDS Modula-2 by Peter
  266. Stadler, Vienna can be found at:
  267. http://www.nhm-wien.ac.at/Petzold/Index.html
  268. 4.18 Can you help me with my assignments?
  269. A1. Some people may give you hints, but please do not subvert your
  270. professor and your education by submitting work other people do for you.
  271.  
  272. A2. Here are two answers submitted to the newsgroup in response to s
  273. desperate student's plea for ANY Modula-2 program.  The first is rather
  274. prosaic; the second a little more imaginative:
  275. MODULE homework;
  276.  
  277. IMPORT STextIO;
  278.  
  279. BEGIN
  280.   LOOP
  281.     STextIO.WriteString ("I will do my own homework.");
  282.     STextIO.WriteLn;
  283.   END;
  284. END homework.
  285.  
  286. main()
  287. {
  288.     int i;
  289.  
  290.     for(i=3D0; i<100; i++)
  291.         printf("I will do my own homework.\n");
  292.  
  293. } Followup Question: Is that Modula-2? I just finished my first course in
  294. Modula-2 and that don't look at all familiar. I'm not looking forward to
  295. the final exam.
  296.  A. (Pat Terry) Computer Science changes sooo rapidly.  Haven't you
  297. discovered Modula-2++ yet?
  298. ***************************************************
  299.  
  300. 5. SPECIFIC QUESTIONS ON CODE AND ALGORITHMS
  301.  
  302. 5.1 Where can I get an algorithm for an efficient random number generator?
  303. A1. Pierre L'Ecuyer: Efficient and Portable Combined Random Number
  304. Generators, Communications of the ACM, vol. 31, no. 6, pp. 742-749. The RNG
  305. has a period of approximately 2.3E+18. Generating 1 000 000 numbers per
  306. second, that means that it would take over 73 000 years before it repeated
  307. a sequence.
  308.  
  309. A2.Have a look at
  310. http://stoner.cidde.pitt.edu/Modula2/
  311. A3.Look in the PMOS library. This one uses the 'Minimal standard random
  312. number generator' described by Park & Miller, CACM 31,10,Oct 88 p1192. The
  313. code has been checked for the 10001st random as specified in Park & Miller
  314. p1195. One site is:
  315. ftp://ftp.psg.com/pub/modula-2/code/random/
  316. 5.2 How can I prevent NIL pointer errors?
  317. A.First guard your reference by writing
  318. IF (myPointer # NIL) AND (myPointer^.fieldname =3D)...etc.
  319. Because Modula-2 has short circuited Boolean expression evaluation, the
  320. first part guards the second from being evaluated inappropriately. Then,
  321. take the radical, unC-like step of checking your code design for the
  322. logical error that led to the incorrect reference in the first place.5.3
  323. Why doesn't my IF statement compile?
  324. A.See the example in the last subsection.  Boolean expressions must be
  325. delineated with parentheses.5.4 Can I assume numeric variables are set to
  326. zero and Booleans to FALSE?
  327. A. No. The values of variables are random until your code sets them.
  328. Declaring does not initialize.5.5 Why do conversions from real to whole
  329. types sometimes crash?
  330. A.You need to protect your conversion code by using MAX (TYPE) and MIN
  331. (TYPE) which are part of the ISO Modula-2 base
  332. language.***************************************************
  333.  
  334. 6. WHAT ARE SOME REFERENCE MATERIALS ON MODULA-2?
  335.  
  336. A1. A shareware text I have written (and that MAY be the only currently
  337. maintained English language instructional text on Modula-2) is available as
  338. html in
  339. http://www.csc.twu.ca/rsbook
  340. mirrors: Austria- http://eiunix.tuwien.ac.at/Modula-2/rsbook/- the U.K.
  341. http://www.comp.it.bton.ac.uk/rsbook
  342. - the U.S. http://www.mesastate.edu/~ethomson/modula2/
  343. and as postscript in ftp://FTP.twu.ca/pub/modula2/Modula-2Text/Chapters.ps/
  344.  
  345. A2.The manuals for some of the commercial products such as TopSpeed contain
  346. much useful information.
  347.  
  348. A3. The Gardens Point sites have documentation available (see their listing
  349. above.)
  350.  
  351. A4. A document called Modula-2 for Pascal programmers (Postscript,10 pages)
  352. may be fetched by anonymous ftp at
  353. ftp://ee.newcastle.edu.au/pub/modula2/Modula2.ps.Z
  354. The author has not updated the contents for a couple of years, so there may
  355. be minor inaccuracies in terms of the current language standard.
  356.  
  357. A5. A variety of ETH papers are stored at ftp.ftp.ethz.ch in /doc/diss,
  358. /doc/tech-reports and /pub/oberon/docu
  359.  
  360. A6. What follows is a BIBLIOGRAPHY of some published materials in a table
  361. delimited by two spaces between fields:
  362.  
  363. Author  Title  City  Publisher  Year  Subject
  364.  
  365.     Adams, J. Mack Gabrini, Philippe J & Kurtz, Barry L.  An
  366. Introduction to Computer Science with Modula-2  Lexington, MA  D.C. Heath &
  367. Co  1988
  368.     Backhurst, Nigel G.  Mastering Modula 2  Wilmslow  Sigma  1988
  369.     Beidler, John & Jackowitz, Paul  Modula-2  Boston  Prindle Weber &
  370. Schmidt  1985
  371.     Blaschek, G. & Pomberger, G.  Introduction To Programming With
  372. Modula-2   Springer-Verlag  1990
  373.     Budgen, David  Software Development with Modula-2  Reading, MA
  374. Addison-Wesley  1989
  375.     Carmony, Lowell A. & Holliday, Robert L.  A First Course In
  376. Modula-2  New York  Computer Science Press  c1990
  377.     Carroll, D. W.  Advanced Modula-2 Programming for the IBM PC  XT
  378. and AT  Elsevier  1986
  379.     Chirlian, Paul M.  Introduction to Modula-2  Beaverton, Or.  Matrix
  380. Publishers
  381.     Christian, Kaare  A guide to Modula-2  New York  Springer-Verlag  1986
  382.     Cooling, J.E.  Modula-2 for Microcomputer Systems    Van Nostrand
  383. Reinhold  1988
  384.     Cooper, Doug  Oh My!  Modula-2!  New York  Norton  1990
  385.     Cornelius, Barry  Programming with TopSpeed Modula-2  Reading, MA
  386. Addison Wesley  1991
  387.     Eisenbach, Susan & Sadler, Cristopher  Program Design with Modula-2
  388. Reading, MA  Addison-Wesley  1989
  389.     Elder, Jim   Compiler Construction: A Recursive Descent model
  390. Hemel Hempstead  England:  Prentice-Hall  1994
  391.     Etling, Don  Modula-2 Programmer's Resource Book  Blue Ridge
  392. Summit, PA  Tab Books  1988
  393.     Feldman, Michael B.  Data Structures with Modula-2  Englewood
  394. Cliffs, NJ  Prentice Hall  1988
  395.     Ford, Gary & Wiener, Richard.  Modula-2: A Software Development
  396. Approach  New York  Wiley  1985
  397.     Gabrini, Philippe J. & Kurtz, Barry L.  Data Structures And
  398. Algorithms With Modula-2  Lexington, MA  DC Heath  c1992
  399.     Gleaves, Richard  Modula-2 for Pascal Programmers  New York
  400. Springer-Verlag  1984
  401.     Gough, K. John & Mohay, George M.  Modula-2: A Second Course In
  402. Programming  Englewood Cliffs, NJ  Prentice Hall  1988
  403.     Greenfield, Stuart B.  Invitation to Modula-2    Petrocelli Books  1985
  404.     Harrison, Rachael  Abstract Data Types in Modula-2  New York  Wiley
  405. 1989 Wiley
  406.     Harter, Edward D.  Modula-2 Programming.  A First Course  Englewood
  407. Cliffs, NJ  Prentice-Hall  1990
  408.     Helman, Paul & Veroff, Robert  Walls and Mirrors: Intermediate
  409. Problem Solving and Data. Modula-2  Menlo Park, CA  Benjamin Cummings  1988
  410.     Hewitt, Jill A. & Frak, Raymond J.  Software Engineering in
  411. Modula-2:  an object-oriented approach   London  Macmillan  1989.
  412. Hille, R.F.  Data Abstraction and Program Development Using Modula-2
  413. Sydney  Prentice Hall  1989
  414.     Hopper, Keith.  The Magic of Modula-2  Melbourne  Prentice Hall  1991
  415.     Johnston, Chris  Applying Modula-2   Academic Press  1991
  416.     Jones, William C. Jr.  Data Structures Using Modula-2  New York
  417. Wiley  1988
  418.     Jones, William C. Jr.  Modula-2 Problem Solving and Programming
  419. with Style  New York  Harper & Row  1987
  420.     Joyce, Edward J.  Modula-2: A Seafarer's Manual & Shipyard Guide
  421. Reading, MA  Addison-Wesley   1985
  422.     Kaplan, Ian & Miller, Mike  Modula-2 Programming  Rochelle Park, NJ
  423. Hayden Book Co.  1986
  424.     Kelly-Bootle, Stan  Modula-2 Primer    Howard W. Sams & Co.  1987
  425.     King, K.N.  Modula-2: A Complete Guide  Lexington, MA  D.C. Heath &
  426. Co  1988
  427.     Knepley, Ed & Platt, Robert  Modula-2 Programming  Reston, VA
  428. Reston Pub. Co.  1985
  429.     Koffman, Elliot B.  Problem Solving and Structured Programming in
  430. Modula-2  Reading, MA  Addison-Wesley  1988
  431.     Kruse, Robert L.  Programming With Data Structures Modula-2 Version
  432. Englewood Cliffs, NJ  Prentice-Hall  1988
  433.     Lawrence, Mike  Modula-2 And The Amiga  Avant-Garde Software  1990?
  434.     Leestma, Sanford & Nyhoff, Larry  Programming & Problem-Solving in
  435. Modula-2  New York  Macmillan  1989
  436.     Lins, C. (Charles)  The Modula-2 Software Component Library Volumes
  437. I-IV  New York  Springer-Verlag  1989-
  438.     Mayer, Herbert G.  Programming in Modula-2.  the Art & the Craft
  439. New York  Macmillan  1988
  440.     McCracken, Daniel D. & W. Salmon  A Second Course in Computer
  441. Science with Modula-2  New York  Wiley  1987
  442.     Messer, P. A. & I. Marshall  Modula-2 Constructive Program
  443. Development  Oxford  Blackwell Scientific Publications  1986
  444.     Metrowerks, Inc. Staff  Metrowerks Modula-2 Start Pak  New York
  445. Macmillan  1990
  446.     Mitchell, R. J.  Modula-2 Applied   London  Macmillan  1991
  447.     Mitchell, Richard  Abstract Data Types And Modula-2  A Worked
  448. Example Of Design Using Data Abstraction   Englewood Cliffs, NJ  Prentice
  449. Hall  1992
  450.     Moore, John B. & McKay, Kenneth N.  Modula-2 Text and Reference
  451. Englewood Cliffs, NJ  Prentice-Hall  1987
  452.     Novak, M.M.  Modula-2 in Science & Engineering  London  McGraw  1990
  453.     Nyhoff, Larry & Leestma ,Sanford  Data Structures & Advanced
  454. Programming in Modula-2  New York  Macmillan  1990
  455.     Ogilvie, John W. L.  Modula-2 Programming  New York  McGraw-Hill  1985
  456.     Pinson, Lewis Sincovec, Richard & Weiner, Richard  A First Course
  457. in Computer Science with Modula-2  New York  Wiley  1987
  458.     Pittman, Thomas & Peters, James  The Art Of Compiler Design Theory
  459. And Practice  Englewood Cliffs, NJ  Prentice-Hall  1992
  460.     Pomberger, Gustav.   Software Engineering and Modula-2  Englewood
  461. Cliffs, NJ  Prentice Hall  1984
  462.     Rechenberg, P. & M=F6ssenb=F6ck, H. (tr. O'Meara, John)  A Compiler
  463. Generator for Microcomputers  Englewood Cliffs, NJ  Prentice Hall / Carl
  464. Hanser Verlag  1989
  465.     Riley, David D.  Data Abstraction and Structures: An Introduction
  466. To Computer Science II  Boston  Boyd & Fraser Pub. Co.  1987
  467.     Riley, David D.  Using Modula-2: An Introduction To Computer
  468. Science I  Boston  Boyd & Fraser Pub. Co.  1987
  469.     Sale, Arthur H. J.  Modula-2: Discipline & Design  Sydney
  470. Addison-Wesley  1986
  471.     Sawyer, Brian & Foster, Dennis.   Programming Expert Systems in
  472. Modula-2  New York  Wiley  1986
  473.     Schildt, Herbert  Advanced Modula-2  Berkeley, CA  Osborne
  474. McGraw-Hill  1987
  475.     Schildt, Herbert  Modula-2 Made Easy  Berkeley, CA  Osborne
  476. McGraw-Hill  1986
  477.     Schiper, Andre; (tr. Howlett, Jack)  Concurrent programming:
  478. Illustrated With Examples in Portal, Ada, and Modula-2    Halsted Press
  479. 1989
  480.     Schnapp, Russell L.  Macintosh Graphics in Modula-2  Englewood
  481. Cliffs, NJ  Prentice-Hall  1986
  482.     Sincovec, Richard F. & Richard S. Wiener.   Data Structures Using
  483. Modula-2  New York  Wiley  1986
  484.     Sincovec, Richard F. & Wiener, Richard S.  Modula-2 Software
  485. Components  New York  Wiley  1987
  486.     Stubbs, Daniel F. & Webre, Neil W.  Data Structures With Abstract
  487. Data Types and Modula-2  Monterey, CA  Brooks/Cole Pub. Co.  1987
  488.     Sutcliffe, Richard J.  Introduction to Programming Using Modula-2
  489. Columbus, OH  Merrill  1987
  490. Sutcliffe, Richard J. mailto:rsutc@twu.ca. Modula-2: Abstractions for Data
  491. and Programming Structures (Using ISO-Standard Modula-2) Mt. Lehman: Arjay
  492. Enterprises 1996. http://www.csc.twu.ca/rsbook (1996 09 16)
  493. Sutcliffe, Richard J. Standard Generic Modula-2 (Document
  494. ISO/IEC/JTC1/SC22/WG13 D235) 1996 07 12
  495. ftp://FTP.twu.ca/pub/modula2/WG13/ca101.GenericModula2CD(1996 09 16)
  496.     Sutherland, Robert J.  The Professional Programmer's Guide to
  497. Modula-2  London  Pitman  1988
  498.     Terry, Patrick D.  An Introduction To Programming with Modula-2
  499. Reading, MA  Addison-Wesley  1987
  500.     Thalmann, Daniel  Modula-2: An Introduction  New York
  501. Springer-Verlag  1985
  502.     Tremblay, Jean-Paul DeDourek, John M. & Daoust, David A.
  503. Programming in Modula-2  New York  McGraw-Hill  1989
  504.     Tucker, Allen B. Jr.  Computer science: A Second Course Using
  505. Modula-2  New York   McGraw-Hill  1988
  506.     Ullmann, Jeffrey  Compiling in Modula-2 - A First Introduction To
  507. Classical Recursive Descent Compiling   Hemel Hempstead  England:
  508. Prentice-Hall  1994
  509.     Ural, Saim & Ural, Suzan  Introduction to Programming with Modula-2
  510. New York  Harper & Row  1987
  511.     Walker, Billy K  Modula-2 Programming With Data Structures
  512. Belmont, CA  Wadsworth Pub. Co.  1986
  513.     Walker, Robert D.  Modula-2 Library Modules: A Programmer's
  514. Reference  Blue Ridge Summit, PA  Tab Books  1988
  515.     Ward, Terry A.  Advanced Programming Techniques in Modula-2
  516. Glenview, IL  Scott Foresman  1987
  517.     Welsh, Jim & Elder, John  Introduction to Modula-2  Englewood
  518. Cliffs, NJ  Prentice-Hall  1987
  519.     Wiatrowski, Claude A. & Wiener, Richard S.  From C to Modula-2--and
  520. Back - Bridging The Language Gap  New York  Wiley
  521.     Wiener, Richard  Modula-2 Wizard's Programming Reference  New York
  522. Wiley  1986
  523.     Wiener, Richard & Ford, G.  Modula-2 A Software Development
  524. Approach  New York  Wiley  1985
  525.     Wiener, Richard & Sincovec, R. F.  Software Engineering with
  526. Modula-2 and Ada  New York  Wiley  1984
  527.     Willis, Claire & Paddon, Derek  Abstraction And Specification With
  528. Modula-2  London  Pitman  1992
  529.     Wirth, Niklaus  Programming in Modula-2 (3rd corrected ed.)  New
  530. York  Springer-Verlag  1985
  531.     Wirth, Niklaus  Algorithms and Data Structures (1986 edition)
  532. Englewood Cliffs, NJ  Prentice-Hall  1986
  533.     Wirth, Niklaus  Programming in Modula-2 (4th ed.)   New York
  534. Springer-Verlag  1990
  535.     Woodman, Mark et al  Portable Modula-2 Programming  Maidenhead,
  536. Berkshire UK  McGraw-Hill  1989
  537.  
  538. 7. REVIEWS OF MODULA-2 PRODUCTS.
  539.  
  540. Note: The reviews have been contributed by others and I take no
  541. responsibility for their accuracy or for any opinions expressed therein. I
  542. have updated some of the facts.
  543.  
  544. p1 Modula-2 v5.2 for Macintosh, by Marc Martin, Dec 1994.This is an
  545. excellent Modula-2 compiler, implemented as an MPW Tool. Highlights include
  546. ISO language extensions & library, a full set of Macintosh toolbox
  547. definitions, language extensions to simplify toolbox programming,
  548. object-oriented extensions and support for MacApp, greater than 32k code
  549. and globals, code generation comparable to Apple's official compilers,
  550. several FPU code options, multi-window debugger, linkable with other MPW
  551. languages, detailed documentation, and superb technical support via e-mail.
  552. Downsides include high cost (US$400), dependency on MPW, lack of SADE
  553. support. Version 6.0 has been released for creating PowerPC programs under
  554. MPW or CodeWarrier.
  555.  
  556. GPM, MOD32, TopSpeed and XDS are reviewed at
  557. http://www.eng.newcastle.edu.au/ee/Moylan/os2/os2m2.html
  558.  
  559. Appendix: AUTHOR INFORMATION AND DISCLAIMERS
  560.  
  561. Personal: I have used, written about, and taught Modula-2 (since 1983) and
  562. have maintained some of the information in this list for over seven years.
  563. I have used at least a dozen different compiler/environments in that time
  564. on five different platforms, and have written numerous articles and reviews
  565. for publication. I have been a member of the ISO committee WG13 (Modula-2
  566. standardization) since its inception and have participated in all the
  567. debates and meetings of WG13 except for meeting #9 at Lake Wanaka. I have
  568. written a text on Modula-2 (now shareware), made numerous submissions to
  569. WG13 and directed an implementation of the ISO I/O library in order to
  570. verify its concepts. I am the author and project editor of Standard Generic
  571. Modula-2.
  572.  
  573. Disclaimers:
  574. (i) I take no responsibility for anyone's use or misuse of this information.
  575. (ii) Apart from having been a beta tester, textbook writer, programmer and
  576. a long time user of Modula-2, I have no financial connection with any
  577. manufacturer or distributor of software. I am the author of some Modula-2
  578. materials (some of which are shareware) as noted herein. Some manufacturers
  579. may distribute my shareware on CD-ROM for a previously arranged fee, but
  580. that is not an endorsement of their products by me or of mine by them.
  581. (iii) In producing this material, I am NOT acting in an official capacity
  582. for TWU, WG13, ABC, IEEE, ACM, comp.lang.modula2, or any other organization.
  583. (iv) Mention of a book or product is NOT an endorsement unless specifically
  584. noted.
  585. (v) Inclusion of materials on this list is based on relevance to Modula-2
  586. and factual content and is otherwise entirely without prejudice. I reserve
  587. the right to edit all submissions for brevity, clarity, and usage.
  588.  
  589. To remain authoritative, this and all versions of this FAQ are copyright
  590. 1991-1998 by Rick Sutcliffe. This document may be freely copied and
  591. distributed provided it is not altered and no fee is charged with the
  592. exception of normal downloading or copying costs.
  593.  
  594. Compiled by:
  595. Rick Sutcliffe (aka The Northern Spy in the old days)
  596. Trinity Western University
  597. 7600 Glover Rd.,
  598. Langley, B.C. Canada V2Y 1Y1
  599. (604) 888-7511 Fax 513-2018 mailto:rsutc@twu.ca
  600.  
  601. Rick Sutcliffe Math/Cmpt Trinity Western University <http://www.twu.ca/>
  602. CDN Chair WG13, FAQ maintainer comp.lang.modula-2
  603. <http://www.twu.ca/faculty/rsutcliffe.htm> <Not speaking officially>
  604.  
  605.  
  606.